home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Internet Info 1994 March
/
Internet Info CD-ROM (Walnut Creek) (March 1994).iso
/
networking
/
ip
/
ka9q
/
alpha.arc
/
LAPB.H
< prev
next >
Wrap
C/C++ Source or Header
|
1988-07-24
|
3KB
|
83 lines
/* Upper sub-layer (LAPB) definitions */
/* Control field templates */
#define I 0x00 /* Information frames */
#define S 0x01 /* Supervisory frames */
#define RR 0x01 /* Receiver ready */
#define RNR 0x05 /* Receiver not ready */
#define REJ 0x09 /* Reject */
#define U 0x03 /* Unnumbered frames */
#define SABM 0x2f /* Set Asynchronous Balanced Mode */
#define DISC 0x43 /* Disconnect */
#define DM 0x0f /* Disconnected mode */
#define UA 0x63 /* Unnumbered acknowledge */
#define FRMR 0x87 /* Frame reject */
#define UI 0x03 /* Unnumbered information */
#define PF 0x10 /* Poll/final bit */
#define MMASK 7 /* Mask for modulo-8 sequence numbers */
/* FRMR reason bits */
#define W 1 /* Invalid control field */
#define X 2 /* Unallowed I-field */
#define Y 4 /* Too-long I-field */
#define Z 8 /* Invalid sequence number */
/* Per-connection link control block
* These are created and destroyed dynamically,
* and are indexed through a hash table.
* One exists for each logical AX.25 Level 2 connection
*/
struct ax25_cb {
struct ax25_cb *next; /* Doubly linked list pointers */
struct ax25_cb *prev;
struct mbuf *txq; /* Transmit queue */
struct mbuf *rxasm; /* Receive reassembly buffer */
struct mbuf *rxq; /* Receive queue */
struct ax25 addr; /* Address header */
struct interface *interface; /* Associated interface */
char rejsent; /* REJ frame has been sent */
char remotebusy; /* Remote sent RNR */
char response; /* Response owed to other end */
char vs; /* Our send state variable */
char vr; /* Our receive state variable */
char unack; /* Number of unacked frames */
int maxframe; /* Transmit flow control level */
int16 paclen; /* Maximum outbound packet size */
int16 window; /* Local flow control limit */
char proto; /* Protocol version */
#define V1 1 /* AX.25 Version 1 */
#define V2 2 /* AX.25 Version 2 */
int16 pthresh; /* Poll threshold */
unsigned retries; /* Retry counter */
unsigned n2; /* Retry limit */
int state; /* Link state */
#define DISCONNECTED 0
#define SETUP 1
#define DISCPENDING 2
#define CONNECTED 3
#define RECOVERY 4
#define FRAMEREJECT 5
char frmrinfo[3]; /* I-field for FRMR message */
struct timer t1; /* Retry timer */
struct timer t2; /* Acknowledgement delay timer */
struct timer t3; /* Keep-alive poll timer */
void (*r_upcall)(); /* Receiver upcall */
void (*t_upcall)(); /* Transmit upcall */
void (*s_upcall)(); /* State change upcall */
char *user; /* User pointer */
};
#define NULLAX25 ((struct ax25_cb *)0)
extern struct ax25_cb ax25default;
extern struct ax25_cb *ax25_cb[];
#define NHASH 17
#define YES 1
#define NO 0